\subsubsection{FSM para el tratamiento del stock:}
Esta FSM representa las interacciones que se deben llevar a cabo entre el encargado, el repositor y las diferentes N stock de ingredientes para lograr la reposición de stock en una sucursal determinada\\
La máquina de Encargado posee N transiciones a su único estado. Cada uno representa un pedido de reserva de ingrediente para un ingrediente i, de 1 a N. Un pedido de reserva consiste en tomar del stock actual de un ingrediente determinado, una cierta cantidad para su consumo. Esto implica que al ser consumido, el nivel de stock se reducirá según el valor que se desea reservar.\\
Como vemos en el diagrama, existen N máquinas StockIngredientes. Cada una representa el control de un ingrediente disponible en una sucursal dada. Como sabemos de antemano, cada ingrediente posee un nivel de stock mínimo, que de estar por debajo de ésta se avisa que se debe reponer lo antes posible. Para cada stock de ingrediente observamos tres estados de las cuales la primera indica la carga inicial de stock. Este estado existirá únicamente cuando se inicializa la opcion de poder adquirir el ingrediente en dicha sucursal. Luego observamos dos estados que son ``Hay Stock" y ``falta Stock". El primero indica que para dicho ingrediente el nivel de stock está por encima de su límite estipulado mientras que el segundo estado indica que se está por debajo de dicho límite mínimo. Si bien en ambos estados pueden existir reservas y recargas de stock, el comportamiento de recarga será distinta y estará determinada por el repositor.\\
La máquina Repositor permite determinar las prioridades de reposición. Intuitivamente, se interpreta que si algun ingrediente está por debajo de su mínimo tendra una prioridad mayor para que sea repuesto. Para representar esto, la máquina Repositor posee dos estados en las cuales en uno es ``hay alarma" y la otra se conoce como ``no hay alarma". Para éste último, la reposición se puede dar para cualquier ingrediente y todas poseen la misma prioridad. De existir alguna que esté por debajo del nivel mínimo se pasará al estado ``hay alerta". Esto ocurre cuando alguna máquina StockIngredientes i, pasa por la transición WarningLímiteMínimo i.\\
En este estado la recarga solamente ocurrirá sobre aquellas transiciones que posean la variable warning$_{i}$ en true. Esto indica que tienen la prioridad a ser recargados y aquellos que no, no ocurrirá una recarga. Mientras, se está en el estado ``hay alerta" puede ocurrir que otra máquina pase por la transición warningLimiteMinimo. Existe una variable global que indica la cantidad de ingredientes que tienen prioridad a ser recargados. Esta variable es conocida como cantWarning y si es un valor distinto a 0, no puede pasar a la transición ``No hay alarma" debido a que existen al menos una maquina de tipo stockIngredientes del cual necesita una reposición de stock. En otras palabras, hasta que no estén atendidos todas las máquinas stockIngrediente que estén por debajo del mínimo, en la máquina Repositor no puede pasar al estado ``no hay alarma".


\begin{figure}[!ht]
  \begin{center}
	\subfloat[Sistema Local]{\includegraphics[width=0.4\textwidth]{imagenes/diagramas/fsm_stock_2.png}}
	\subfloat[Control Stock]{\includegraphics[width=0.4\textwidth]{imagenes/diagramas/fsm_stock_1.png}}
  \end{center}
   \caption{Máquinas de estados que modelan el sistema local y el control de stock.}
\end{figure}

\bigskip

\begin{figure}[!ht]
  \begin{center}
	\includegraphics[scale=0.60]{imagenes/diagramas/fsm_stock.png}
  \end{center}
  \caption{Máquina de estado que refleja el monitoreo y control de alertas de stock bajo.}
\end{figure}

\clearpage